Development of software can be a tedious and time-consuming business. Software applications typically all do the same basic manipulations of data. The variation in how those manipulations occur and what the data represents leads to variety in software. Thus, it is not at all unusual to use the same software routines or components in a variety of different applications.
While the same routines may be used, they may have variations which make the individual instances of a routine slightly different. Alternatively, the same routine may be plugged into a different (or related) application when the same type of data is processed. Thus, it may be useful to provide a method of finding existing software code during development of software.
Finding reusable software code is potentially simple. To make it simple, one must have an organized list of software components already in existence and a knowledge of what these components are. However, no typical software engineer has such information for all software the engineer has developed individually. Moreover, groups of software developers generally have only vague knowledge of what members of the group have developed, and little knowledge of what has been developed outside the group. Thus, it may be useful to develop a system allowing organized access to software source code from a variety of software applications or source code repositories. Moreover, it may be useful to categorize or otherwise organize such information, allowing for access to the source code in an efficient manner.